The present invention relates to computer image generation and more particularly to methods for generating two-dimensional displays of an image based on three-dimensional image data.
Many imaging systems produce data representing physical entities or properties in three-dimensional space. Examples include CAT scans, MRI scans, ultrasound images and seismic test images. The process of converting the three-dimensional arrays of data into two dimensional image displays is referred to as volume-rendering. The term voxel processing is also used, because the 3-D space is ordinarily broken down into small volumes, referred to as voxels. Each voxel has optical properties, ordinarily expressed in terms of opacity (or its inverse, transparency) and color (or grey-scale in black and white imaging systems). These properties contribute to the overall image when it is to be computed by mathematical projection and sampling and converted into pixels to be displayed on a two dimensional display surface.
Volume rendering employs a class of algorithms for visualizing or representing three-dimensional grids of data. Such algorithms are based on the physics of light interaction with modeled particles in a volume. The beginnings of a particle model for graphics rendering were developed by Blinn (Bli82) and extended by Kajiya et al. (KH84) to nonhomogeneous densities of particles. The common algebraic technique for combining ray samples is compositing, derived separately by Blinn (Bli82) and Porter et al. (PD84). Modem direct volume rendering algorithms are largely based on Levoy (Lev88), Drebin et al. (DCHB88), Sabella (Sab88), and Upson et al. (UK88). Up-to-date surveys may be found in Max (Max95) and Kaufman (Kau91).
Levoy in (Lev88) proposed a volume rendering pipeline that classifies and shades voxels before interpolation. This approach can lead to two computational advantages compared to classifying sample points interpolated from voxel data. First, classification can be treated as a preprocess and need not be repeated per view. Second, the number of voxels in a data set can be significantly less than the number of sample points when computing a view, resulting in lower classification cost. Commonly-assigned U.S. Pat. No. 5,557,711 discloses a multiprocessor and parallel method for volume rendering by preprocessing transparency and luminescence signals in subsets or regions of an object space and then compositing the signals from such regions for the object space as a whole. Unfortunately, classification first followed by interpolation as described in (Lev88, Lev89, Lev90) erroneously interpolates shaded color values independently from opacity.
The wide use of volume rendering software from the seminal Levoy references, and the inherent complexity of the underlying model, have meant that implementations of volume rendering can include shading artifacts due to improper classification, shading, and interpolation. Drebin et al. (DCH88) specify opacity weighting of the colors. Others have noted the difficulties associated with opacity and color, notably Wilhelms (WG91) and Blinn (Bli94), but not as it relates to resampling of shaded color values in volume ray tracing. Wilhelms notes that different answers will result if one interpolates colors versus data, but the former may be faster. Blinn discusses the issues in filtering an image that has opacities at each pixel. He shows an example of overlaying and downsampling, and the different answer that results if downsampling is done first without opacity weighting the colors. He calls the opacity weighted colors "associated colors." Wilhelms, Van Gelder et al. (Wil91,VGK96) discuss the issues in interpolating colors instead of materials, and resulting artifacts, but do not clarify that additional artifacts result if opacity weighted colors are not properly interpolated.
Accordingly, a need remains for a better way to process voxel data to interpolate color values in proper relation to opacity values, so as to avoid introducing artifacts.